Ethernet is a local-area network (LAN) design which employs carrier sense multiple access with collision detection (CSMA/CD) as an access control method. When a device wishes to transmit a packet on the LAN, it first listens to the network to determine if any other device is currently transmitting, and waits if the network is busy. Otherwise, the device begins transmitting its packet, while simultaneously listening to the bus to determine if the packet collided with other network traffic. If such a collision is detected, the device ceases transmission, then checks for an idle network again before retransmitting.
An Ethernet repeater is a network element which provides a common point for receiving packets from individual devices and for retransmitting the packets to other devices. A buffered repeater must be employed when full duplex links are used. An Ethernet buffered repeater provides temporary storage of received packets prior to transmission to all other interconnected devices. However, the discrete amount of memory available for queuing received data can be filled. To address this situation, the architecture for the Ethernet buffered repeater uses a flow control technique specified by the IEEE 802.3x standard. According to this architecture, a buffered repeater port which is receiving packets transmits a flow control frame to the transmitting port at the other end of the respective link to suspend packet transmissions to the repeater for some specified period of time when the buffered repeater port can no longer receive additional incoming packets, presumably because its receive buffer is filling up.
This architecture also provides for a discrete buffer space at each transmit port. However, this buffer space can also be filled. When the port at the other end of the respective link can no longer receive data from such a buffered repeater transmit port, the respective receiving port transmits a flow control frame to the buffered repeater, and in response the buffered repeater transmit port is required to suspend the transmission of data.
Due to the high transmission speeds utilized in the next generation of Ethernet, known as Gigabit Ethernet, repeater buffer spaces can easily be filled before feedback can be provided to a source for slowing or temporarily stopping the flow of data into the repeater. This necessitates the inefficient retransmission of incompletely received packets.
Previous approaches adhering to the IEEE 802.3x standard have required the provision of a relatively large transmit FIFO buffer in order to allow the transmit data to queue up while the link is thus disabled. However, it is generally acknowledged that it is not cost-effective for a buffered repeater to support both large transmit and receive queues. One proposal for addressing this situation prohibits buffered repeater transmit ports from being flow-controlled off. In other words, such buffered repeater transmit ports are not to respond to received flow control frames. Each buffered repeater receive port is therefore allowed to send flow control frames to a respective remote port as the receive queue fills, but the respective buffered repeater transmit port does not accept flow control frames from the remote port due to remote congestion. Such a proposal has been labelled Asymmetric Flow Control, and necessarily implicates packet loss due to downstream congestion, retransmission of the lost packets, and consequent reduction in available bandwidth.
Therefore, buffered repeaters, which meet the applicable industry standard, have heretofore been unable to accommodate high-rate Ethernet traffic without either large transmit buffer spaces or the inefficient loss and retransmission of packets associated with Asymmetric Flow Control.